home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
G-Games
/
(c)ge.d64
/
football 84.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
29KB
|
1,048 lines
100 REM ******************************
110 REM *** ***
120 REM *** FOOTBALL84 ***
130 REM *** WRITTEN BY: LES SUMI ***
140 REM *** 16 JANUARY 1984 ***
150 REM *** ***
160 REM ******************************
170 REM
180 REM
185 CLR
190 DIM S(2),STR(2,5),N$(2),L$(12),Q(2),SC(2),D$(8),T1(2),TP(2)
200 GOSUB 6190
210 D$(1)="STANDARD DEFENCE": D$(2)="SHORT YARDAGE DEFENCE"
220 D$(3)="'NICKEL' DEFENCE": D$(4)="'PREVENT' DEFENCE"
230 D$(5)="PARTIAL BLITZ": D$(6)="ALL-OUT BLITZ"
240 D$(7)="TIMEOUT": D$(8)="STATUS"
250 FOR I=1 TO 2
260 F1(I)=0: R1(I)=0: P1(I)=0: NY1(I)=0: P2(I)=0: P3(I)=0: I1(I)=0: PA(I)=0
270 PC(I)=0:SC(I)=0:T1(I)=3:P4(I)=0:P5(I)=0:F2(I)=0:F3(I)=0:QQ(I)=0:NEXTI
280 Q=1: QQ=0: E=0: HT=0: T=0: W=0: WW=0: OT=0: TP(1)=0: TP(2)=0
290 REM CHOOSE TEAM NAMES
300 PRINT"[147]":PRINT:PRINTTAB(11);"*** FOOTBALL84 ***"
310 PRINT"CHOOSE TEAM NAMES[146]"
320 PRINT:PRINT"YOUR TEAM NAME";
330 INPUT N$(1)
340 IF LEN(N$(1))<12 THEN 360
350 PRINT"ONLY 12 CHARACTERS.....TRY AGAIN":PRINT: GOTO 320
360 PRINT:PRINT:PRINT:PRINT
370 PRINT"COMPUTER TEAM NAME";
380 INPUT N$(2)
390 IF LEN(N$(2))<12 THEN 410
400 PRINT"ONLY 12 CHARACTERS.....TRY AGAIN":PRINT: GOTO 370
410 PRINT
420 REM CHOOSE LEVEL OF DIFFICULTY (WIMP FACTOR)
430 PRINT"[147]CHOOSE LEVEL OF DIFFICULTY:[146]"
440 PRINT" (WIMP FACTOR) [146]":PRINT:PRINT:PRINT
450 PRINT" <W>IMPY - WHEN YOU LOOK UP 'WIMP' IN"
460 PRINT" THE DICTIONARY, YOU SEE"
470 PRINT" YOUR REFLECTION!!":PRINT
480 PRINT" <E>ASY - YOUR IDEA OF A CHALLENGE"
490 PRINT" IS TO OPEN A BOX OF"
500 PRINT" CORNFLAKES WITHOUT READING"
510 PRINT" THE INSTRUCTIONS!!":PRINT
520 PRINT" <M>EDIUM - YOU HAVE THE HEART OF A"
530 PRINT" LION BUT FEET OF CLAY!!":PRINT
540 PRINT" <H>ARD - YOU HAVE MORE COURAGE"
550 PRINT" THAN BRAINS!!":PRINT
560 INPUT L$
570 IF L$="W" THEN WF=-1.4: GOTO 620
580 IF L$="E" THEN WF=-0.5: GOTO 620
590 IF L$="M" THEN WF=-0.2: GOTO 690
600 IF L$="H" THEN WF=1.1: GOTO 690
610 PRINT:PRINT"INVALID INPUT...TRY AGAIN":PRINT:GOTO 560
620 PRINT"[147]"
630 PRINTTAB(10);" [223][169] [223][146]"
640 PRINTTAB(10);" [146]"
650 PRINTTAB(10);" [146][169]"
660 PRINTTAB(10);" [169][223] [146]"
670 PRINTTAB(10);"[223] [146][169][223] [146][169] [146]"
680 GOSUB 6280
690 REM CHOOSE TEAM STRENGTHS
700 PRINT"[147]":PRINT"CHOOSE TEAM STRENGTHS[146] (SUM MUST BE TEN)":PRINT:PRINT
710 L$(1)="RUSHING OFFENCE": L$(2)="PASSING OFFENCE": L$(3)="RUSHING DEFENCE"
720 L$(4)="PASSING DEFENCE": L$(5)="SPECIAL TEAMS "
730 FOR I=1 TO 2
740 FOR K=1 TO 5: STR(I,K)=0: NEXT K: NEXT I
750 PRINT"";N$(1);""
760 TQ=0
770 FOR K=1 TO 5
780 PRINTL$(K);
790 INPUT STR(1,K): STR(1,K)=ABS(STR(1,K))
800 TQ=TQ+STR(1,K)
810 NEXT K
820 PRINT"TOTAL: ";TQ:PRINT: GOSUB 6270
830 IF TQ<=10 THEN 870
840 PRINT"TOTAL GREATER THAN TEN.....ARE YOU"
850 PRINT"TRYING TO CHEAT OR CAN'T YOU COUNT?"
860 PRINT"TRY AGAIN": GOSUB 6270: GOTO 750
870 PRINT"VERIFY SELECTIONS[146]": PRINT:PRINT
880 PRINT"DO YOU WISH TO CHANGE YOUR MIND";
890 INPUT CHECK$
900 IF LEFT$(CHECK$,1)="Y" THEN 750
910 FOR K=1 TO 5
920 IF STR(1,K)>4+WF THEN STR(1,K)=3.5
930 NEXT K
940 PRINT
950 PRINT"COMPUTER SELECTS ";N$(2)
960 PRINT"TEAM STRENGTHS...": GOSUB 6270
970 TQ=0
980 FOR K=2 TO 5
990 STR(2,K)=INT(4*RND(.))
1000 TQ=TQ+STR(2,K)
1010 NEXT K
1020 IF TQ<6 OR TQ>9 THEN 970
1030 STR(2,1)=10-TQ
1040 REM COIN TOSS
1050 PRINT"[147]COIN TOSS[146]":PRINT:PRINT
1060 ZZ=INT(RND(.)*2)+1
1070 ON ZZ GOTO 1160,1080
1080 S=STR(2,3)+STR(2,4)-STR(2,1)-STR(2,2)
1090 IF S>0 AND RND(.)<0.5 THEN 1130
1100 PRINT N$(ZZ);" WON THE TOSS AND ELECTS"
1110 PRINT" TO RECEIVE": QB=2: MLB=1
1120 GOTO 1240
1130 PRINT N$(ZZ);" WON THE TOSS AND ELECTS"
1140 PRINT " TO KICKOFF": QB=1: MLB=2
1150 GOTO 1240
1160 PRINT N$(ZZ);" WON THE TOSS"
1170 PRINT"WILL YOU <K>ICK OR <R>ECEIVE";
1180 INPUT G$
1190 IF LEFT$(G$,1)<>"K" AND LEFT$(G$,1)<>"R" THEN 1170
1200 IF LEFT$(G$,1)="K" THEN 1230
1210 QB=1: MLB=2
1220 GOTO 1240
1230 QB=2: MLB=1
1240 IF QB=1 THEN SX=2
1250 IF QB=2 THEN SX=1
1260 REM KICKOFF
1270 IF OT=1 AND SC(1)<>SC(2) THEN 8890
1280 DOWN=1: PRINT:PRINT:PRINT" *** KICKOFF ***":PRINT
1290 IF QB=2 THEN 1320
1300 IF T>55 AND (SC(1)-SC(2))>0 THEN OS$="Y": GOTO 1340
1310 GOTO 1350
1320 PRINT"ON-SIDE KICK";
1330 INPUT OS$
1340 IF LEFT$(OS$,1)="Y" THEN 1680
1350 KL=45+INT(26*RND(.)+STR(MLB,5))
1360 PRINT KL;" YARD KICKOFF..."
1370 YL=65-KL
1380 IF YL<-10 THEN 1580
1390 IF YL<0 THEN 1470
1400 PRINT"BALL IS ON ";YL;" YARDLINE."
1410 IF RND(.)>0.94 THEN 1610
1420 RL=INT(18*RND(.)+18*RND(.)+STR(QB,5))
1430 YL=YL+RL
1440 IF YL<0 THEN 1580
1450 PRINTRL;" YARD RETURN."
1460 GOTO 1650
1470 PRINT"BALL IS ";ABS(YL);" YARDS DEEP"
1480 PRINT"IN THE ENDZONE."
1490 IF QB=1 THEN 1530
1500 PRINTN$(2);" ELECTS TO DOWN THE BALL IN"
1510 PRINT"THE ENDZONE...";
1520 GOTO 1580
1530 PRINT"DO YOU WANT TO BRING IT OUT";
1540 INPUT R$
1550 IF LEFT$(R$,1)="N" THEN 1580
1560 GOTO 1410
1570 PRINT"KICK RETURNER TACKLED IN ENDZONE"
1580 PRINT"TOUCHBACK."
1590 YL=20
1600 GOTO 1650
1610 RL=INT(100*RND(.))+10
1620 YL=YL+RL
1630 IF YL>99 THEN 7510: GOTO 1270
1640 PRINTRL;" YARD RETURN."
1650 Y=YL: A=QB: IF YL>50 THEN A=MLB: Y=100-YL
1660 GOTO 1770
1670 PRINT"BALL IS ON";N$(A);Y;"YARDLINE.": GOTO 1770
1680 IF RND(.)<0.75 THEN 1720
1690 PRINT"ON-SIDE KICK SUCCESSFUL."
1700 W=QB: QB=MLB: MLB=W: YL=55-INT(9*RND(.)): GOTO 1650
1710 GOTO 1770
1720 PRINT"ON-SIDE KICK NOT SUCCESSFUL."
1730 YL=55-INT(9*RND(.))
1740 GOTO 1650
1750 RETURN
1760 REM SELECT OFFENSIVE PLAY
1770 DOWN=1: YFIRST=10
1780 PRINT:PRINT"FIRST DOWN ";N$(QB);"."
1790 PRINT"BALL ON ";N$(A);Y;" YARDLINE."
1800 ZZ=TI
1810 IF QB=2 THEN 9510
1820 PRINT:PRINT"SELECT OFFENSIVE PLAY";
1830 INPUT OP
1840 IF (TI-ZZ)<1800 THEN 1890
1850 PRINT:PRINT"DELAY OF GAME PENALTY ON ";N$(QB);"!!"
1860 YL=YL-5: YFIRST=YFIRST+5: P2(QB)=P2(QB)+1: P3(QB)=P3(QB)+5
1870 IF YL-5<1 THEN YL=INT(YL/2)
1880 GOTO 6020
1890 OP=INT(OP)
1900 IF OP>0 AND OP<15 THEN 2070
1910 PRINT:PRINT"OFFENSIVE PLAYS:[146]":PRINT
1920 PRINT"1. LINE PLUNGE"
1930 PRINT"2. TRAP PLAY"
1940 PRINT"3. POWER SWEEP"
1950 PRINT"4. DRAW PLAY"
1960 PRINT"5. SCREEN PASS"
1970 PRINT"6. SHORT PASS"
1980 PRINT"7. MEDIUM PASS"
1990 PRINT"8. LONG PASS"
2000 PRINT"9. SIDELINE PASS"
2010 PRINT"10. PUNT"
2020 PRINT"11. FIELD GOAL"
2030 PRINT"12. STATUS"
2040 PRINT"13. TIMEOUT"
2050 PRINT"14. QUIT"
2060 GOTO 1800
2070 REM SELECT DEFENSIVE PLAY
2080 IF OP>9 THEN 2210
2090 IF MLB=2 THEN 10060
2100 PRINT:PRINT"SELECT DEFENSIVE PLAY";
2110 INPUT DP
2120 DP=INT(DP)
2130 IF DP>0 AND DP<9 THEN 2190
2140 PRINT:PRINT"DEFENSIVE PLAY:[146]":PRINT
2150 FOR I=1 TO 8
2160 PRINT I;". ";D$(I)
2170 NEXT I
2180 GOTO 2100
2190 IF DP=7 THEN 6800
2200 IF DP=8 THEN GOSUB 7620: GOTO 2070
2210 IF OP=14 THEN 7920
2220 ON OP GOTO2230,2560,2900,3210,3570,3910,4390,4860,5320,5380,5570,7620,6800
2230 REM 1. LINE PLUNGE
2240 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
2250 PRINT:PRINT"LINE PLUNGE..."
2260 PRINT" ";D$(DP);"..."
2270 IF RND(.)<0.02 THEN FUMB=1
2280 IF RND(.)<0.05 THEN PENALTY=1
2290 GOSUB 9460
2300 IF RND(.)<0.04 THEN 2330
2310 GAIN=3*(STR(QB,1)-STR(MLB,3))+4*RND(.)
2320 GAIN=INT(GAIN): GOTO 2350
2330 GAIN=30*RND(.)+20*(STR(QB,1)-STR(MLB,3))
2340 GAIN=INT(GAIN)
2350 ON DP GOTO 2360,2370,2400,2420,2430,2460
2360 GOTO 2490
2370 IF RND(.)<0.02 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2490
2380 IF RND(.)<0.20 THEN GAIN=INT(-4*RND(.)): GOTO 2490
2390 GAIN=GAIN-1: GOTO 2490
2400 IF RND(.)<0.5 THEN 2490
2410 GAIN=GAIN+INT(5*RND(.)): GOTO 2490
2420 IF RND(.)<0.5 THEN 2490
2430 IF RND(.)<0.20 THEN GAIN=INT(-4*RND(1)): GOTO 2490
2440 IF RND(.)<0.3 THEN GAIN=GAIN+INT(30*RND(.)): GOTO 2490
2450 GOTO 2490
2460 IF RND(.)<0.30 THEN GAIN=INT(-4*RND(.)): GOTO 2490
2470 IF RND(.)<0.5 THEN GAIN=GAIN+INT(40*RND(.))
2480 IF YL+GAIN>99 THEN 7510
2490 IF GAIN<0 THEN GOSUB 6940
2500 IF GAIN=0 THEN GOSUB 6960
2510 IF GAIN>0 THEN GOSUB 6980
2520 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
2530 IF PENALTY<>1 THEN 2550
2540 PRINT"...BUT THERE'S A PENALTY ON THE PLAY": PENALTY=0: GOSUB 7010
2550 GOTO 5850
2560 REM 2. TRAP PLAY
2570 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
2580 PRINT:PRINT"TRAP PLAY..."
2590 PRINT" ";D$(DP);"..."
2600 R=STR(QB,1)-STR(MLB,3)
2610 IF RND(.)<0.055 THEN PEN=1
2620 IF RND(.)<0.05 THEN FUMB=1
2630 GOSUB 9460
2640 IF RND(.)<0.15 THEN 2660
2650 GAIN=INT(4*RND(.)+5*R): GOTO 2670
2660 GAIN=INT(50*RND(.))
2670 ON DP GOTO 2680,2690,2720,2740,2760,2790
2680 GOTO 2830
2690 IF RND(.)<0.03 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2830
2700 IF RND(.)<0.5 THEN GAIN=INT(-4*RND(.)): GOTO 2830
2710 GAIN=GAIN-1: GOTO 2830
2720 IF RND(.)<0.2 AND D>0 THEN GAIN=GAIN+INT(30*RND(.)): GOTO 2830
2730 GAIN=GAIN+INT(5*RND(.)): GOTO 2830
2740 IF RND(.)<0.3 AND R>0 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 2830
2750 GAIN=GAIN+INT(10*RND(1)): GOTO 2830
2760 IF RND(.)<0.3 THEN GAIN=INT(-5*RND(.)): GOTO 2830
2770 IF RND(.)<0.5 THEN 2830
2780 GAIN=GAIN+INT(40*RND(.)): GOTO 2830
2790 IF RND(.)<0.6 THEN GAIN=INT(-5*RND(1)): GOTO 2830
2800 IF RND(.)<0.5 THEN 2830
2810 GAIN=GAIN+INT(40*RND(.))
2820 IF YL+GAIN>99 THEN 7510
2830 IF GAIN<0 THEN GOSUB 6940
2840 IF GAIN=0 THEN GOSUB 6960
2850 IF GAIN>0 THEN GOSUB 6980
2860 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
2870 IF PENALTY<>1 THEN 2890
2880 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
2890 GOTO 5850
2900 REM 3. POWER SWEEP
2910 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
2920 PRINT:PRINT"POWER SWEEP..."
2930 PRINT" ";D$(DP);"..."
2940 R=STR(QB,1)-STR(MLB,3)
2950 IF RND(.)<0.1 THEN PEN=1
2960 IF RND(.)<0.07 THEN FUMB=1
2970 GOSUB 9460
2980 IF RND(.)<0.2 AND R>0 THEN 3000
2990 GAIN=INT(2*RND(.)+10*RND(.)*R): GOTO 3010
3000 GAIN=INT(40*RND(.))
3010 ON DP GOTO 3020,3030,3050,3070,3080,3110
3020 GOTO 3140
3030 IF RND(.)<0.1 AND R>0 THEN GAIN=INT(50*RND(.)): GOTO 3140
3040 GAIN=GAIN-INT(3*RND(.)): GOTO 3140
3050 IF RND(.)<0.5 THEN 3140
3060 GAIN=GAIN+INT(5*RND(.)): GOTO 3140
3070 GAIN=GAIN+INT(20*RND(.)): GOTO 3140
3080 IF RND(.)<0.4 THEN GAIN=INT(-8*RND(1)): GOTO 3140
3090 IF RND(.)<0.7 THEN 3140
3100 GAIN=GAIN+INT(40*RND(.)): GOTO 3140
3110 IF RND(.)<0.6 THEN GAIN=INT(-10*RND(.)): GOTO 3140
3120 IF RND(.)<0.7 THEN GAIN=GAIN+INT(30*RND(.))
3130 IF YL+GAIN>99 THEN 7510
3140 IF GAIN<0 THEN GOSUB 6940
3150 IF GAIN=0 THEN GOSUB 6960
3160 IF GAIN>0 THEN GOSUB 6980
3170 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
3180 IF PENALTY<>1 THEN 3200
3190 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
3200 GOTO 5850
3210 REM 4. DRAW PLAY
3220 PEN=0: HOLD=0: PI=0: ICEPT=0: FUMB=0
3230 PRINT:PRINT"DRAW PLAY..."
3240 PRINT" ";D$(DP);"..."
3250 RP=STR(QB,1)+STR(QB,2)-STR(MLB,3)-STR(MLB,4)
3260 IF RND(.)<0.075 THEN PENALTY=1
3270 IF RND(.)<0.05 THEN FUMB=1
3280 GOSUB 9460
3290 IF RND(.)<0.1 THEN 3330
3300 GAIN=INT(10*RND(.)*RP)
3310 IF GAIN=0 THEN GAIN=INT(5*RND(.))-2
3320 GOTO 3340
3330 GAIN=INT(40*RND(.))
3340 ON DP GOTO 3350,3360,3380,3410,3430,3460
3350 GOTO 3500
3360 IF RND(.)<0.05 THEN GAIN=GAIN+INT(40*RND(.)): GOTO 3500
3370 GAIN=GAIN+INT(-10*RND(.)): GOTO 3500
3380 IF RND(.)<0.5 THEN GAIN=GAIN+INT(10*RND(.)): GOTO 3500
3390 IF RND(.)<0.15 THEN GAIN=INT(20*RND(.)): GOTO 3500
3400 GOTO 3500
3410 IF RND(.)<0.6 THEN GAIN=GAIN+INT(15*RND(.)): GOTO 3500
3420 GAIN=GAIN+INT(4*RND(.)): GOTO 3500
3430 IF RND(.)<0.5 THEN GAIN=INT(-9*RND(1)): GOTO 3500
3440 IF RND(.)<0.5 THEN GAIN=GAIN+INT(25*RND(.)): GOTO 3500
3450 GOTO 3500
3460 IF RND(.)<0.65 THEN GAIN=INT(-9*RND(.)): GOTO 3500
3470 IF RND(.)<0.65 THEN 3500
3480 GAIN=GAIN+INT(35*RND(.))
3490 IF YL+GAIN>99 THEN 7510
3500 IF GAIN<0 THEN GOSUB 6940
3510 IF GAIN=0 THEN GOSUB 6960
3520 IF GAIN>0 THEN GOSUB 6980
3530 IF FUMB=1 THEN GOSUB 6450: PEN=0: GOTO 5850
3540 IF PENALTY<>1 THEN 3560
3550 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
3560 GOTO 5850
3570 REM 5. SCREEN PASS
3580 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
3590 PRINT:PRINT"SCREEN PASS..."
3600 PRINT" ";D$(DP);"..."
3610 P=STR(QB,2)-STR(MLB,4)
3620 IF RND(.)<0.035 THEN PEN=1
3630 GOSUB 9460
3640 IF RND(.)<0.05 THEN ICEPT=1
3650 IF RND(.)<0.70 THEN COMP=1
3660 IF COMP=1 THEN GAIN=INT(10*RND(.)+10*RND(.)*P)
3670 ON DP GOTO 3680,3690,3720,3740,3760,3790
3680 GOTO 3820
3690 COMP=0: IF RND(.)<0.35 THEN COMP=1
3700 IF COMP=1 THEN GAIN=INT(10*RND(.)*P)
3710 GOTO 3820
3720 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(12*RND(.))
3730 GOTO 3820
3740 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(20*RND(.))
3750 GOTO 3820
3760 IF RND(.)<0.4 AND COMP=1 THEN GAIN=GAIN-INT(10*RND(.))
3770 IF RND(.)<0.4 AND COMP=1 THEN GAIN=GAIN+INT(30*RND(.))
3780 GOTO 3820
3790 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN-INT(10*RND(.))
3800 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(40*RND(.))
3810 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
3820 IF COMP=1 THEN GOSUB 7490
3830 IF COMP<>1 THEN GOSUB 7500: GAIN=0
3840 IF YL+GAIN>99 THEN 7510
3850 IF GAIN<0 THEN GOSUB 6940
3860 IF GAIN=0 THEN GOSUB 6960
3870 IF GAIN>0 THEN GOSUB 6980
3880 IF PENALTY<>1 THEN 3900
3890 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
3900 GOTO 5850
3910 REM 6. SHORT PASS
3920 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
3930 IF OP=9 THEN 3950
3940 PRINT:PRINT"SHORT PASS..."
3950 PRINT" ";D$(DP);"..."
3960 P=STR(QB,2)-STR(QB,4)
3970 IF RND(.)<0.05 THEN PEN=1
3980 IF RND(.)<0.04 THEN PI=1
3990 IF RND(.)<0.67 THEN COMP=1
4000 IF RND(.)<0.2 AND P<0 THEN COMP=0
4010 IF COMP=1 THEN GAIN=INT(15*RND(0))
4020 ON DP GOTO 4030,4050,4090,4120,4160,4210
4030 IF RND(.)<0.05 THEN HOLD=1: GOTO 4250
4040 GOTO 4250
4050 IF RND(.)<0.05 THEN HOLD=1
4060 IF RND(.)<0.05 THEN ICEPT=1
4070 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*INT(0))
4080 GOTO 4250
4090 IF RND(.)<0.3 THEN COMP=0: GAIN=0
4100 IF RND(.)<0.05 THEN HOLD=1
4110 GOTO 4250
4120 IF RND(.)<0.025 THEN HOLD=1
4130 IF COMP=0 AND RND(.)<0.5 THEN COMP=1
4140 IF COMP=1 THEN GAIN=INT(15*RND(0))
4150 GOTO 4250
4160 IF RND(.)<0.085 THEN HOLD=1
4170 IF RND(.)<0.2 THEN ICEPT=1
4180 IF RND(.)<0.2 THEN SACK=1
4190 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
4200 GOTO 4250
4210 IF RND(.)<0.085 THEN HOLD=1
4220 IF RND(.)<0.2 THEN ICEPT=1
4230 IF RND(.)<0.35 THEN SACK=1
4240 IF RND(.)<0.25 AND COMP=1 THEN GAIN=GAIN+INT(40*RND(.))
4250 GOSUB 9460
4260 IF SACK=1 THEN GOSUB 7440: GOTO 4320
4270 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
4280 IF COMP=1 THEN GOSUB 7490
4290 IF COMP<>1 THEN GOSUB 7500: GAIN=0
4300 IF PI=1 THEN GOSUB 6540: GOTO 5850
4310 IF YL+GAIN>99 THEN 7510
4320 IF GAIN<0 THEN GOSUB 6940
4330 IF GAIN=0 THEN GOSUB 6960
4340 IF GAIN>0 THEN GOSUB 6980
4350 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
4360 IF PENALTY<>1 THEN 4380
4370 PRINT"...BUT THERE'S A PENALTY ON THE PLAY.": PENALTY=0: GOSUB 7010
4380 GOTO 5850
4390 REM 7. MEDIUM PASS
4400 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
4410 IF OP=9 THEN 4430
4420 PRINT:PRINT"MEDIUM PASS..."
4430 PRINT" ";D$(DP);"..."
4440 P=STR(QB,2)-STR(MLB,4)
4450 IF RND(.)<0.05 THEN PEN=1
4460 IF RND(.)<0.04 THEN PI=1
4470 IF RND(.)<0.5 THEN COMP=1
4480 IF RND(.)<0.2 AND P<0 THEN COMP=0
4490 IF COMP=1 THEN GAIN=INT(30*RND(.)+5)
4500 ON DP GOTO 4510,4530,4560,4590,4620,4670
4510 IF RND(0)<0.075 THEN HOLD=1
4520 GOTO 4710
4530 IF RND(.)<0.075 THEN HOLD=1
4540 IF RND(.)<0.5 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
4550 GOTO 4710
4560 IF RND(.)<0.3 THEN COMP=0
4570 IF RND(.)<0.075 THEN HOLD=1
4580 GOTO 4710
4590 IF RND(.)<0.3 THEN COMP=0
4600 IF RND(.)<0.035 THEN HOLD=1
4610 GOTO 4710
4620 IF RND(.)<0.11 THEN HOLD=1
4630 IF RND(.)<0.1 THEN ICEPT=1
4640 IF RND(.)<0.2 THEN SACK=1
4650 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
4660 GOTO 4710
4670 IF RND(.)<0.125 THEN HOLD=1
4680 IF RND(0)<0.1 THEN ICEPT=1
4690 IF RND(.)<0.3 THEN SACK=1
4700 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
4710 GOSUB 9460
4720 IF SACK=1 THEN GOSUB 7440: GOTO 4780
4730 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
4740 IF COMP=1 THEN GOSUB 7490
4750 IF COMP<>1 THEN GOSUB 7500: GAIN=0
4760 IF PI=1 THEN GOSUB 6540: GOTO 5850
4770 IF YL+GAIN>99 THEN 7510
4780 IF GAIN<0 THEN GOSUB 6940
4790 IF GAIN=0 THEN GOSUB 6960
4800 IF GAIN>0 THEN GOSUB 6980
4810 IF PENALTY<>1 AND HOLD<>1 THEN 4850
4820 PRINT"...BUT THERE'S A PENALTY ON THE PLAY."
4830 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
4840 IF PENALTY=1 THEN GOSUB 7010
4850 GOTO 5850
4860 REM 8. LONG PASS
4870 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
4880 PRINT:PRINT"LONG PASS..."
4890 PRINT" ";D$(DP);"..."
4900 IF RND(.)<0.05 THEN PENALTY=1
4910 IF RND(.)<0.05 THEN PI=1
4920 IF RND(.)<0.33 THEN COMP=1
4930 IF COMP=1 THEN GAIN=15+INT(45*RND(.))
4940 ON DP GOTO 4950,4970,5000,5030,5070,5120
4950 IF RND(.)<0.1 THEN HOLD=1
4960 GOTO 5160
4970 IF RND(.)<0.1 THEN HOLD=1
4980 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
4990 GOTO 5160
5000 IF RND(.)<0.3 THEN COMP=0
5010 IF RND(.)<0.05 THEN HOLD=1
5020 GOTO 5160
5030 IF RND(.)<0.075 THEN HOLD=1
5040 IF RND(.)<0.5 THEN COMP=0
5050 IF COMP=1 AND RND(.)<0.5 THEN GAIN=GAIN+INT(25*RND(.))
5060 GOTO 5160
5070 IF RND(.)<0.1 THEN HOLD=1
5080 IF RND(.)<0.1 THEN ICEPT=1
5090 IF RND(.)<0.2 THEN SACK=1
5100 IF RND(.)<0.2 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
5110 GOTO 5160
5120 IF RND(.)<0.1 THEN HOLD=1
5130 IF RND(.)<0.1 THEN ICEPT=1
5140 IF RND(.)<0.3 THEN SACK=1
5150 IF RND(.)<0.3 AND COMP=1 THEN GAIN=GAIN+INT(25*RND(.))
5160 GOSUB 9460
5170 IF SACK=1 THEN GOSUB 7440: GOTO 5240
5180 IF PI=1 THEN GOSUB 6540: GOTO 5850
5190 IF ICEPT=1 THEN GOSUB 6690: GOTO 5900
5200 IF SACK=1 THEN 5240
5210 IF COMP=1 THEN GOSUB 7490
5220 IF COMP<>1 THEN GOSUB 7500: GAIN=0
5230 IF YL+GAIN>99 THEN 7510
5240 IF GAIN<0 THEN GOSUB 6940
5250 IF GAIN=0 THEN GOSUB 6960
5260 IF GAIN>0 THEN GOSUB 6980
5270 IF PENALTY<>1 OR HOLD<>1 THEN 5310
5280 PRINT"...BUT THERE'S A PENALTY ON THE PLAY."
5290 IF HOLD=1 THEN GOSUB 7040: PENALTY=0
5300 IF PENALTY=1 THEN 7010
5310 GOTO 5850
5320 REM 9. SIDELINE PASS
5330 COMP=0: HOLD=0: SACK=0: PI=0: PENALTY=0
5340 PRINT:PRINT"SIDELINE PASS..."
5350 IF RND(0)<0.5 THEN 3910
5360 GOTO 4390
5370 REM 10. PUNT
5380 PP=10*RND(1)+3*STR(QB,5): T=T+0.2
5390 PNT=35+INT(PP)
5400 P4(QB)=P4(QB)+1:QQ(QB)=QQ(QB)+PNT: P5(QB)=INT(10*QQ(QB)/P4(QB))/10
5410 YL=YL+PNT: YL=100-YL: YFIRST=10
5420 Z=QB: QB=MLB: MLB=Z: DOWN=1
5430 PRINT:PRINTPNT;" YARD PUNT..."
5440 IF YL<=0 THEN 5530
5450 IF RND(.)<0.1 THEN 5480
5460 PR=10*RND(.)+3*STR(QB,5)
5470 PR=INT(PR): GOTO 5490
5480 PR=INT(40*RND(.)*STR(QB,5))
5490 IF PR<0 THEN PR=0
5500 IF PR=0 THEN PRINT"FAIR CATCH ";N$(QB): GOTO 5540
5510 YL=YL+PR
5520 PRINTPR;" YARD RETURN.": GOTO 5540
5530 PRINT"TOUCHBACK...": YL=20
5540 IF YL>99 THEN 7510
5550 PRINT: PRINT"FIRST DOWN ";N$(QB);". ";YFIRST;" YARDS TO GO."
5560 GOTO 6100
5570 REM 11. FIELD GOAL
5580 FGL=117-YL: GD=0: BL=0: S=STR(QB,5)-STR(MLB,5): T=T+0.1
5590 PRINTFGL;" YARD FIELD GOAL ATTEMPT...": GOSUB 6270
5600 IF FGL>50+10*S THEN 5800
5610 IF FGL>25+10*S THEN 5630
5620 IF RND(0)<0.9-0.25*FGL/35 THEN GD=1: GOTO 5640
5630 IF RND(0)<0.65-0.65*(FGL-35)/25 THEN GD=1
5640 IF GD<>1 THEN 5800
5650 S=STR(QB,5)-STR(MLB,5): IF S<0 AND RND(0)<0.1 THEN BL=1
5660 IF BL<>1 THEN 5690
5670 PRINT"FIELD GOAL ATTEMPT IS BLOCKED!": Z=QB: QB=MLB: MLB=Z: YL=100-YL
5680 R=INT(30*RND(0)):YL=YL+R:PRINTR;" YARD RETURN.":DOWN=1:YFIRST=10:GOTO5850
5690 PRINT"[147]"
5700 PRINTTAB(10);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
5710 PRINTTAB(10);"[165] [167]"
5720 PRINTTAB(10);"[165] [167]"
5730 PRINTTAB(10);"[165] IT'S GOOD!! [167]"
5740 PRINTTAB(10);"[165] [167]"
5750 PRINTTAB(10);"[165] [167]"
5760 PRINTTAB(10);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
5770 GOSUB 6280: PRINT"[147]"
5780 SC(QB)=SC(QB)+3: GOSUB 8770
5790 Z=QB: QB=MLB: MLB=Z: GOTO 1270
5800 PRINT:PRINT"FIELD GOAL ATTEMPT IS NO GOOD..."
5810 YL=100-YL: IF YL<20 THEN YL=20: Y=20
5820 Z=QB: QB=MLB: MLB=Z: A=QB: IF YL>50 THEN A=MLB
5830 GOTO 1760
5840 REM PLAY GAME
5850 YL=YL+GAIN: IF PEN=1 OR PI=1 OR HOLD=1 THEN 5900
5860 PEN=0: IF OP<5 THEN R1(QB)=R1(QB)+GAIN: GOTO 5890
5870 IF OP<10 THEN P1(QB)=P1(QB)+GAIN: PA(QB)=PA(QB)+1
5880 IF COMP=1 THEN PC(QB)=PC(QB)+1
5890 NY1(QB)=NY(QB)+GAIN
5900 IF YL>99 THEN 7510
5910 IF YL<=0 THEN 6340
5920 HT=0
5930 GOSUB 8080
5940 IF HT=1 THEN 1270
5950 YFIRST=YFIRST-GAIN
5960 IF YFIRST>0 THEN 5980
5970 DOWN=0: YFIRST=10: F1(QB)=F1(QB)+1
5980 DOWN=DOWN+1
5990 IF DOWN<5 THEN 6020
6000 Z=QB: QB=MLB: MLB=Z: YFIRST=10: YL=100-YL: DOWN=1
6010 PRINT:PRINT"BALL GOES OVER ON DOWNS..."
6020 ON DOWN GOTO 6030,6040,6050,6060
6030 D$="FIRST": GOTO 6070
6040 D$="SECOND": GOTO 6070
6050 D$="THIRD": GOTO 6070
6060 D$="FOURTH"
6070 IF YL+YFIRST<100 THEN 6090
6080 PRINT:PRINTD$;" DOWN, ";N$(QB);". GOAL TO GO.": GOTO 6100
6090 PRINT:PRINTD$;" DOWN, ";N$(QB);". "; YFIRST;" YARDS TO GO."
6100 IF YL<50 THEN Y=YL: NN=QB: GOTO 6120
6110 Y=100-YL: NN=MLB:
6120 PRINT"BALL IS ON ";N$(NN);" ";Y;" YARDLINE."
6130 TR=15*Q-T:SR=INT((TR-INT(TR))*60): IFQ<>2ORT<28 THEN 6150
6140 PRINTINT(TR);"MINUTES AND";SR;"SECONDS":PRINT"REMAINING IN HALF."
6150 IF Q<>4 OR T<58 THEN 6170
6160 PRINTINT(TR);"MINUTES AND";SR;"SECONDS":PRINT"REMAINING IN GAME."
6170 GAIN=0: GOTO 1800
6180 REM TITLE
6190 PRINT"[147]":PRINT""
6200 PRINT" [169] [223][169] [223] [223][169] [223] "
6210 PRINT" "
6220 PRINT" "
6230 PRINT" "
6240 PRINT" [146][223] [146][169] [223] [146][169] [146][169] "
6250 PRINT"[157][157][157][157][157]L.S."
6260 GOSUB6280: PRINT"[147]": RETURN
6270 FOR DELAY=1 TO 2500: NEXT: RETURN
6280 FOR DELAY=1 TO 5000: NEXT: RETURN
6290 FOR DELAY=1 TO 1500: NEXT: RETURN
6300 PRINT"< HIT ANY KEY TO CONTINUE >"
6310 GET X$
6320 IF X$="" THEN 6310: WAIT
6330 RETURN
6340 REM SAFETY
6350 GOSUB 6290: PRINT"[147]"
6360 PRINTTAB(13);"[207][163][163][163][163][163][163][163][163][163][163][163][163][208]"
6370 PRINTTAB(13);"[165] [167]"
6380 PRINTTAB(13);"[165] SAFETY!! [167]"
6390 PRINTTAB(13);"[165] [167]"
6400 PRINTTAB(13);"[204][164][164][164][164][164][164][164][164][164][164][164][164][186]"
6410 GOSUB 6280: PRINT"[147]"
6420 SC(MLB)=SC(MLB)+2: GOSUB 8770
6430 Z=QB: QB=MLB: MLB=Z
6440 PRINT" *** FREE KICK ***": GOTO 1350
6450 REM FUMBLE
6460 K=INT(2*RND(.))+1: PEN=0: FUMB=0
6470 PRINT"FUMBLE ON THE PLAY...": F3(QB)=F3(QB)+1: GOSUB 6270
6480 PRINT"RECOVERED BY ";N$(K);"."
6490 IF K=QB THEN 6530
6500 Z=QB: QB=MLB: MLB=Z: YFIRST=10: DOWN=0: YL=YL+GAIN: YL=100-YL: GAIN=0
6510 IF YL<1 THENPRINT"TOUCHBACK...": YL=20
6520 F2(MLB)=F2(MLB)+1
6530 RETURN
6540 REM PASS INTERFERENCE
6550 K=5
6560 PL=INT((OP-5)*12*RND(.)+5*RND(.)): IF PL=15 THEN PL=16
6570 IF YL+PL>110 THEN PL=110-YL
6580 IF PL=5 THEN PL=6
6590 IF PL=0 THEN PL=2
6600 PRINTPL;" YARD PASS ATTEMPT..."
6610 PRINT"PASS INTERFERENCE ON ";N$(MLB);".":PRINT
6620 GOSUB 7120
6630 IF P$="Y" THEN 6660
6640 GAIN=0: IF COMP=1 THEN GAIN=PL
6650 GOTO 6680
6660 IF OYL+PL>100 AND LEFT$(P$,1)<>"N" THEN YL=99
6670 DOWN=0: YFIRST=10
6680 RETURN
6690 REM INTERCEPTED
6700 I1(MLB)=I1(MLB)+1
6710 PL=INT((OP-5)*20*RND(.))+INT(5*RND(.)): ICEPT=0
6720 IF PL+YL>110 THEN PL=110-YL
6730 PRINTPL;" YARD PASS INTERCEPTED!!"
6740 Z=QB: QB=MLB: MLB=Z: YL=100-YL
6750 R=INT(20*RND(.))
6760 PRINTR;" YARD RETURN."
6770 YL=YL-PL+R: YFIRST=10: DOWN=0: GAIN=0: COMP=0
6780 IF YL<1 THEN PRINT"TOUCHBACK...":PRINT: YL=20
6790 RETURN
6800 REM TIMEOUT
6810 IF OP=13 THEN T2=QB
6820 IF DP=7 THEN T2=MLB
6830 PRINT"TIMEOUT ";N$(T2);"..."
6840 IF T1(T2)>0 THEN 6890
6850 T1(T2)=0
6860 PRINTN$(T2);" HAS NO TIMEOUTS LEFT!!"
6870 PRINT"NOW 80,000 FANS KNOW YOU CAN'T COUNT!!":PRINT
6880 GOTO 1800
6890 T=TLAST+0.1: T1(T2)=T1(T2)-1: TP(QB)=TP(QB)-DM+0.1
6900 IF T2=2 THEN 6920
6910 GOSUB 6300
6920 GOTO 1800
6930 REM GAIN/LOSS OUTPUT
6940 IF YL+GAIN<1 THEN GAIN=-YL
6950 PRINTABS(GAIN);" YARD LOSS.": RETURN
6960 PRINT"NO GAIN.": RETURN
6970 PRINT"NO GAIN.": RETURN
6980 IF YL+GAIN>99 THEN GAIN=100-YL
6990 PRINTGAIN;" YARD GAIN.": RETURN
7000 PRINTABS(GAIN);" YARD LOSS."
7010 REM PENALTY
7020 K=INT(4*RND(.))+1
7030 ON K GOTO 7040,7060,7080,7100
7040 PRINT"HOLDING PENALTY ON ";N$(QB);".": K=1
7050 PL=-10: GOTO 7120
7060 PRINT"ILLEGAL PROCEDURE ON ";N$(QB);"."
7070 PL=-5: GOTO 7120
7080 PRINT"ROUGH PLAY ON ";N$(MLB);"."
7090 PL=15: GOTO 7120
7100 PRINT"OFFSIDE ON ";N$(MLB);"."
7110 PL=5
7120 T=T+0.1: IF PL<0 THEN Z=MLB
7130 IF PL>0 THEN Z=QB
7140 OYL=YL: IF Z=1 THEN 7300
7150 ON K GOTO 7160,7200,7240,7260,7280
7160 IF YL+GAIN>99 THEN P$="Y": GOTO 7320
7170 IF YL+GAIN<1 THEN P$="N": GOTO 7320
7180 IF (GAIN<YFIRST AND DOWN=3)OR(GAIN<YFIRST AND DOWN=4)THEN P$="N": GOTO 7320
7190 P$="Y": GOTO 7320
7200 IF YL+GAIN>99 THEN P$="Y": GOTO 7320
7210 IF GAIN<YFIRST AND DOWN=4 THEN P$="N": GOTO 7320
7220 IF ((GAIN<YFIRST AND DOWN=3)OR(GAIN<0)) THEN P$="N":GOTO 7320
7230 P$="Y": GOTO 7320
7240 IF YL+GAIN<100 THEN P$="Y": GOTO 7320
7250 P$="N": GOTO 7320
7260 IF GAIN>YFIRST AND GAIN>PL OR YL+GAIN>99 THEN P$="N": GOTO 7320
7270 P$="Y": GOTO 7320
7280 IF GAIN>PL AND GAIN>=YFIRST THEN P$="N"
7290 P$="Y": GOTO 7320
7300 PRINT"DOES ";N$(Z);" ACCEPT PENALTY";
7310 INPUT P$
7320 IF LEFT$(P$,1)="N" THEN 7400
7330 PRINT"PENALTY ACCEPTED...": IF PL=15 THEN 7350
7340 DOWN=DOWN-1: YFIRST=YFIRST-PL: YL=YL+PL: GAIN=0: GOTO 7370
7350 IF YL+GAIN+PL>99 THEN YL=YL+GAIN+INT((100-YL-GAIN)/2)
7360 GAIN=GAIN+PL: YL=YL+GAIN: DOWN=0: YFIRST=10: GAIN=0
7370 IF Z=MLB THEN ZZ=QB
7380 IF Z=QB THEN ZZ=MLB
7390 P2(ZZ)=P2(ZZ)+1: P3(ZZ)=P3(ZZ)+ABS(PL): GOTO 7410
7400 PRINT"PENALTY DECLINED...": GOTO 5850
7410 IF YL<1 THEN YL=INT(OYL/2): YFIRST=YFIRST+OYL-YL
7420 IF YL>99 THEN YL=OYL+INT((100-OYL)/2): YFIRST=YFIRST+OYL-YL
7430 RETURN
7440 REM SACK
7450 LOSS=INT(20*RND(0))+1: SACK=0
7460 PRINT"QUARTERBACK IS SACKED FOR A ";LOSS
7470 PRINT"YARD LOSS!"
7480 GAIN=-LOSS: GOTO 5850
7490 PRINT"PASS COMPLETE...": RETURN
7500 PRINT"PASS INCOMPLETE...": RETURN
7510 GOSUB 6290: PRINT"[147]":PRINT""
7520 PRINTTAB(9);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
7530 PRINTTAB(9);"[180] [167]"
7540 PRINTTAB(9);"[180] [167]"
7550 PRINTTAB(9);"[180] TOUCHDOWN!!! [167]"
7560 PRINTTAB(9);"[180] [167]"
7570 PRINTTAB(9);"[180] [167]"
7580 PRINTTAB(9);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
7590 SC(QB)=SC(QB)+7
7600 Z=QB: QB=MLB: MLB=Z
7610 GOSUB6280: GOSUB 8770: GOTO 1270
7620 REM 12. STATUS
7630 PRINT"[147]STATUS[146]":PRINT
7640 IF E=1 THEN Q=4
7650 PRINT"QUARTER: ";Q:PRINT:PRINT
7660 PRINT"SCORE:"
7670 FOR I=1 TO 2
7680 PRINT N$(I);TAB(14); SC(I)
7690 NEXT I
7700 PRINT:PRINT
7710 TT=(15*Q)-T
7720 SEC=INT((TT-INT(TT))*60)
7730 IF E=1 THEN TT=0: SEC=0
7740 PRINT"TIME REMAINING IN QUARTER:"
7750 PRINTINT(TT);" MINUTES AND ";SEC;" SECONDS"
7760 PRINT:PRINT
7770 PRINT"TIMEOUTS REMAINING:"
7780 FOR I=1 TO 2
7790 PRINTN$(I);TAB(14);T1(I): NEXT I: IF HT=1 THEN 7860
7800 IF E=1 THEN 7860
7810 DN=DOWN: IF DOWN=0 THEN DN=1
7820 PRINT:PRINT:PRINT"DOWN: ";DN
7830 PRINT"YARDS TO GO ";YFIRST
7840 QK=QB: IF YL>50 THEN QK=MLB: Y=100-YL
7850 PRINT"BALL ON: ";N$(QK);Y;"YARD LINE": GOSUB 6280
7860 PRINT"DO YOU WANT TO SEE GAME STATISTICS";
7870 INPUT S$
7880 IF LEFT$(S$,1)<>"N" THEN GOSUB 9110
7890 GOSUB 6300: IF T=15 OR T=30 OR T=45 OR T=60 THEN RETURN
7900 IF DP=8 THEN RETURN
7910 GOTO 1800
7920 PRINT"[147]ARE YOU SURE YOU WANT TO QUIT,"
7930 PRINT"YOU COWARD";
7940 INPUT Q$
7950 IF LEFT$(Q$,1)="Y" THEN 7970
7960 GOTO 1800
7970 PRINT"[147]"
7980 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
7990 PRINTTAB(7);"[165] [167]"
8000 PRINTTAB(7);"[165] [167]"
8010 PRINTTAB(7);"[165] *** CHICKEN *** [167]"
8020 PRINTTAB(7);"[165] [167]"
8030 PRINTTAB(7);"[165] [167]"
8040 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
8050 GOSUB 6280
8060 PRINT"[147]"
8070 GOTO 9080
8080 REM TIME COUNT
8090 IF OP=1 OR OP=2 THEN 8150
8100 IF OP=3 AND RND(.)<0.5 THEN 8150
8110 IF OP=4 AND RND(.)<0.3 THEN 8150
8120 IF COMP=0 THEN 8170
8130 IF OP=9 AND RND(.)<0.8 THEN 8170
8140 IF RND(.)<0.3 THEN 8170
8150 TLAST=T
8160 T=T+0.5: TP(QB)=TP(QB)+0.5: DM=0.5: GOTO 8190
8170 TLAST=T
8180 T=T+0.15: TP(QB)=TP(QB)+0.15: DM=0.15: IF OT=1 THEN RETURN
8190 IF T>=58 AND WW=0 THEN GOSUB 8590
8200 IF T>=28 AND W=0 THEN GOSUB 8590
8210 IF T<=15*Q THEN 8580
8220 Q=Q+1
8230 ON Q-1 GOTO 8240,8320,8430,8500
8240 GOSUB 6270
8250 PRINT"[147]"
8260 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
8270 PRINTTAB(7);"[165] [167]"
8280 PRINTTAB(7);"[165] END OF FIRST QUARTER [167]"
8290 PRINTTAB(7);"[165] [167]"
8300 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]": GOSUB 8700
8310 GOSUB 6280: T=15: GOSUB 8830: GOSUB 7620: GOTO8580
8320 GOSUB 6270: PRINT"[147]"
8330 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
8340 PRINTTAB(7);"[165] [167]"
8350 PRINTTAB(7);"[165] END OF FIRST HALF [167]"
8360 PRINTTAB(7);"[165] [167]"
8370 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
8380 GOSUB 6280: T=30: GOSUB 8830: HT=1
8390 QB=SX: T1(1)=3: T1(2)=3: GOSUB 7620
8400 IF QB<>2 THEN MLB=2: GOTO 8420
8410 IF QB<>1 THEN MLB=1
8420 GOSUB 9290: RETURN
8430 GOSUB 6270: PRINT"[147]"
8440 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
8450 PRINTTAB(7);"[165] [167]"
8460 PRINTTAB(7);"[165] END OF THIRD QUARTER [167]"
8470 PRINTTAB(7);"[165] [167]"
8480 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
8490 GOSUB 6280: T=45: GOSUB 8830: GOSUB 7620: GOTO8580
8500 GOSUB 6270
8510 PRINT"[147]"
8520 PRINTTAB(7);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
8530 PRINTTAB(7);"[165] [167]"
8540 PRINTTAB(7);"[165] END OF GAME!!! [167]"
8550 PRINTTAB(7);"[165] [167]"
8560 PRINTTAB(7);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
8570 GOSUB 6280:PRINT"[147]":T=60:GOSUB8830:E=1:GOSUB 7620: GOTO 8890
8580 RETURN
8590 REM 2 MINUTE WARNING
8600 IF T<30 THEN W=1
8610 IF T>30 THEN WW=1
8620 GOSUB 6270: PRINT"[147]"
8630 PRINTTAB(8);"[207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][208]"
8640 PRINTTAB(8);"[165] [167]"
8650 PRINTTAB(8);"[165] TWO MINUTE WARNING [167]"
8660 PRINTTAB(8);"[165] [167]"
8670 PRINTTAB(8);"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
8680 GOSUB 6280: PRINT"[147]"
8690 RETURN
8700 REM COMPUTER TEAM ADJUSTMENTS BETWEEN FIRST AND SECOND QUARTERS
8710 IF SC(1)-SC(2)<=0 THEN 8760
8720 STR(2,3)=STR(1,1): STR(2,4)=STR(1,2)
8730 STR(2,1)=5*RND(.)+WF: STR(2,2)=5*RND(.)+WF: STR(2,5)=4*RND(.)+WF
8740 FOR K=1 TO 5
8750 IF STR(2,K)<1 THEN STR(2,K)=1: NEXT K
8760 RETURN
8770 REM DISPLAY SCORE
8780 PRINT"[147]";TAB(8);N$(1);TAB(24);SC(1):PRINT
8790 PRINTTAB(8);N$(2);TAB(24);SC(2)
8800 GOSUB 6280
8810 PRINT"[147]"
8820 RETURN
8830 REM TIME OF POSSESSION CORRECTION
8840 C=T-TP(1)-TP(2)
8850 A=TP(1)/(TP(1)+TP(2)): B=1-A
8860 TP(1)=TP(1)+A*C
8870 TP(2)=TP(2)+B*C
8880 RETURN
8890 PRINT"[147]": OT=0
8900 IF SC(1)-SC(2)>0 THEN W=1: GOTO 8930
8910 IF SC(1)-SC(2)<0 THEN W=2: GOTO 8930
8920 GOTO 9360
8930 PRINT"*** ";N$(W);" WON!! ***"
8940 IF L$="W" THEN AZ=1
8950 IF L$="E" THEN AZ=2
8960 IF L$="M" THEN AZ=3
8970 IF L$="H" THEN AZ=4
8980 IF W=2 THEN 9080
8990 ON AZ GOTO 9000,9020,9040,9060
9000 PRINT"NOT BAD FOR A WIMP!! REAL HEROS USE"
9010 PRINT"THE 'MEDIUM' AND 'HARD' LEVELS!!": END
9020 PRINT"BIG DEAL! SO YOU WON! REAL HEROS USE"
9030 PRINT"THE 'MEDIUM' AND 'HARD' LEVELS!!": END
9040 PRINT"NOT BAD FOR AN AMATEUR! LET'S SEE"
9050 PRINT"YOU DO IT AGAIN ON THE HARD LEVEL!!": END
9060 PRINT"YOU'RE A REAL HERO (AND LUCKY TOO)!"
9070 PRINT"BET YOU CAN'T DO IT AGAIN!": END
9080 PRINT"YOU COULDN'T EVEN BEAT THE COMPUTER!"
9090 PRINT"HA HA HA HA HA HA HA HA HA HA HA!!!"
9100 END
9110 REM STATISTICS
9120 PRINT"[147]STATISTICS:[146]":PRINT
9130 PRINT"STATISIC";TAB(15);N$(1);TAB(29);N$(2):PRINT
9140 PRINT"FIRST DOWNS";TAB(15);F1(1);TAB(29);F1(2)
9150 PRINT"RUSHING";TAB(15);R1(1);TAB(29);R1(2)
9160 PRINT"PASSING";TAB(15);P1(1);TAB(29);P1(2)
9170 PRINT"NET YARDS";TAB(15);NY1(1);TAB(29);NY1(2)
9180 PRINT"PASSES";TAB(15);PC(1);"/";PA(1);TAB(29);PC(2);"/";PA(2)
9190 PRINT"INTERCEPTED BY";TAB(15);I1(1);TAB(29);I1(2)
9200 PRINT"PUNTS";TAB(15);P4(1);"-";P5(1);
9210 PRINTTAB(29);P4(2);"-";P5(2)
9220 PRINT"FUMBLES/LOST";TAB(15);F3(1);"/";F2(1);TAB(29);F3(2);"/";F2(2)
9230 PRINT"PENALTIES/";TAB(15);P2(1);"-";P3(1);TAB(29);P2(2);"-";P3(2)
9240 PRINT" YARDS"
9250 PRINT"TIME OF";TAB(15);INT((TP(1)+0.05)*10)/10;
9260 PRINTTAB(29);INT((TP(2)+0.05)*10)/10
9270 PRINT"POSSESSION"
9280 RETURN
9290 REM COMPUTER TEAM MAKES ADJUSTMENTS AT HALFTIME
9300 IF SC(1)-SC(2)<0 THEN 9350
9310 FOR I=1 TO 5
9320 STR(2,I)=3.5+WF
9330 IF STR(2,I)<STR(1,I) THEN STR(2,I)=STR(1,I)
9340 NEXT I
9350 RETURN
9360 REM OVERTIME
9370 PRINT"[147]"
9380 PRINTTAB(13);"[207][163][163][163][163][163][163][163][163][163][163][163][163][208]"
9390 PRINTTAB(13);"[165] [167]"
9400 PRINTTAB(13);"[165] OVERTIME [167]"
9410 PRINTTAB(13);"[165] [167]"
9420 PRINTTAB(13);"[204][164][164][164][164][164][164][164][164][164][164][164][164][186]"
9430 GOSUB 6270: OT=1: Q=5: E=0: T1(1)=3: T1(2)=3
9440 PRINT"[147]"
9450 GOTO 1050
9460 REM HALF/GAME CANNOT END ON PENALTY
9470 IF Q=2 AND T>29.5 THEN PENALTY=0: PI=0: HOLD=0
9480 IF Q=4 AND T>59.5 THEN PENALTY=0: PI=0: HOLD=0
9490 RETURN
9500 REM COMPUTER OFFENSIVE STRATEGY
9510 R=STR(2,1)-STR(1,3): B=0
9520 P=STR(2,2)-STR(1,4)
9530 IF OT=1 THEN 9570
9540 IF DOWN=4 AND T<58 THEN 9570
9550 IF Q=2 AND T>27 AND SC(1)-SC(2)>0 THEN 9770
9560 IF Q=4 AND T>57 AND SC(1)-SC(2)>0 THEN 9770
9570 IF (R>0 AND P>0) OR (R<0 AND P<0) OR (R=0 AND P=0) THEN B=1
9580 ON DOWN GOTO 9590,9590,9660,9710
9590 IF YFIRST<3 THEN GOSUB 10020: GOTO 1840
9600 IF B<>1 THEN 9620
9610 IF RND(.)<0.5 THEN R=1: GOTO 9620
9620 IF R>0 THEN GOSUB 9840: GOTO 9640
9630 GOSUB 9890
9640 GOTO 1840
9650 REM COMPUTER OFFENCE - THIRD DOWN
9660 IF YFIRST>9 THEN GOSUB 9990: GOTO 9700
9670 IF YFIRST>3 THEN GOSUB 9890: GOTO 9700
9680 IF R>0 OR YFIRST=1 THEN GOSUB 10020: GOTO 9700
9690 GOSUB 9960
9700 GOTO 1840
9710 REM COMPUTER OFFENCE - FOURTH DOWN
9720 IF YL>70-2*STR(QB,5) THEN OP=11: GOTO 1840
9730 IF YFIRST>1 THEN OP=10: GOTO 1840
9740 IF YL<50 THEN OP=10: GOTO 1840
9750 OP=1: GOTO 1840
9760 REM 2 MINUTE OFFENCE
9770 IF T-TLAST=0.5 AND T1(2)>0 THEN OP=13: GOTO 1840
9780 IF Q=2 AND T>29.5 AND YL>=65 THEN OP=11: GOTO 1840
9790 IF SC(1)-SC(2)<4 AND T>59.5 AND YL>55 THEN OP=11: GOTO 1840
9800 IF Q=2 AND DOWN=4 THEN 9710
9810 IF (DOWN=1 OR DOWN=2) AND RND(.)<0.2 THEN OP=8: GOTO 1840
9820 OP=9: GOTO 1840
9830 REM CHOOSE OFFENSIVE PLAY (MAINLY RUN)
9840 IF RND(.)<0.7 THEN GOSUB 9930: GOTO 9870
9850 IF RND(.)<0.8 THEN GOSUB 9960: GOTO 9870
9860 GOSUB 9990
9870 RETURN
9880 REM CHOOSE OFFENSIVE PLAY (MAINLY SHORT PASS)
9890 IF RND(.)<0.7 THEN GOSUB 9960: GOTO 9920
9900 IF RND(.)<0.8 THEN GOSUB 9930: GOTO 9920
9910 GOSUB 9990
9920 RETURN
9930 REM CHOOSE RUNNING PLAY
9940 OP=INT(3*RND(.))+1
9950 RETURN
9960 REM CHOOSE SHORT PASS PLAY
9970 OP=INT(3*RND(.))+5
9980 RETURN
9990 REM CHOOSE LONG PASS PLAY
10000 OP=INT(2*RND(.))+7
10010 RETURN
10020 REM SHORT YARDAGE OFFENCE
10030 IF RND(.)<0.8 THEN OP=1: GOTO 10050
10040 OP=8
10050 RETURN
10060 REM COMPUTER DEFENCE
10070 SS=SC(1)-SC(2): IF OT=1 THEN 10100
10080 IF Q=2 AND T>28 THEN 10510
10090 IF Q=4 AND T>58 THEN 10510
10100 R=STR(1,1)-STR(2,3): B=0
10110 P=STR(1,2)-STR(2,4)
10120 IF (R>0 AND P>0) OR (R<0 AND P<0) OR (R=0 AND P=0) THEN B=1
10130 ON DOWN GOTO 10150,10190,10240,10280
10140 REM FIRST DOWN DEFENCE
10150 IF B=1 THEN GOSUB 10370: GOTO 10180
10160 IF R>0 THEN GOSUB 10340: GOTO 10180
10170 GOSUB 10310
10180 GOTO 2190
10190 REM SECOND DOWN DEFENCE
10200 IF YFIRST>9 THEN GOSUB 10310: GOTO 10230
10210 IF YFIRST>3 THEN GOSUB 10370: GOTO 10230
10220 GOSUB 10340
10230 GOTO 2190
10240 REM THIRD DOWN DEFENCE
10250 IF YFIRST>4 THEN GOSUB 10430: GOTO 10270
10260 GOSUB 10470
10270 GOTO 2190
10280 REM FOURTH DOWN DEFENCE
10290 IF YFIRST>4 THEN GOSUB 10430: GOTO 2210
10300 GOSUB 10470: GOTO 2190
10310 REM STOP PASSING TEAM
10320 IF RND(.)<0.5 THEN GOSUB 10400: RETURN
10330 GOSUB 10430: RETURN
10340 REM STOP RUNNING TEAM
10350 IF RND(.)<0.5 THEN GOSUB 10400: RETURN
10360 GOSUB 10470: RETURN
10370 REM STOP PASSING/RUNNING TEAM
10380 IF RND(.)<0.5 THEN GOSUB 10340: RETURN
10390 GOSUB 10310: RETURN
10400 REM STANDARD DEFENCE
10410 IF RND(.)<0.8 THEN DP=1: RETURN
10420 DP=5: RETURN
10430 REM PASS DEFENCE
10440 IF RND(.)<0.7 THEN DP=3: RETURN
10450 IF RND(.)<0.5 THEN DP=5: RETURN
10460 DP=6: RETURN
10470 REM RUN DEFENCE
10480 IF RND(.)<0.8 THEN DP=2: RETURN
10490 IF RND(.)<0.5 THEN DP=5: RETURN
10500 DP=6: RETURN
10510 REM 2 MINUTE COMPUTER DEFENCE
10520 IF SS>0 AND Q=4 AND T-TLAST=0.5 AND T1(2)>0 THEN DP=7: GOTO 2190
10530 IF SS>=0 THEN 10100
10540 IF YL>90 AND RND(.)<0.8 THEN DP=6: GOTO 2190
10550 DP=3: GOTO 2190